ホームに戻る
出典 :
Git チュートリアル - Git LFS(Large File Storage)とは | Atlassian Git Tutorial [GitHub] Git LFSで巨大なファイルを扱う
目次 :

Gitにおける巨大ファイルの取扱

Gitホストではファイルサイズに制約を設けていることが多く、GitHubにおいては通常、100MB以上のサイズを持つファイルをプッシュすることができない。
(因みに、推奨されているファイルサイズは50MB未満、リポジトリのサイズは1GB程度である。)
このようなサイズの大きなファイルを取り扱う為の仕組みとして、「Git LFS(Large File Storage)」が存在する。

Git LFSの概略

Git LFSでは、サイズの大きなファイルを専用のストレージに格納し、リポジトリには当該ファイルに紐づくインデクスファイルを配置する。
このインデクスファイルは極軽量であるため、リポジトリの圧迫を避けることができる。
ただし、Git LFSに対応するホスト(GitHub、Bitbucketなど)でしか用いることができない。

Git LFSの導入

Git本体がすでにインストールされていることを前提とする。

Windows

  1. Git LFS公式サイトからプログラムをダウンロードし、実行する。
  2. コンソール(PowerShell など)を開き、以下のコマンドでGit LFSを有効化する。
    (TortoiseGitなどのクライアントからでも実行可能?要調査)
    git lfs install
  3. ローカルリポジトリを作成(git init)する。
    git init
  4. LFSでの管理対象としたいファイルパターンを入力する。ワイルドカードを使用可能。
    (例 : ZIPファイルを対象とする場合)
    git lfs track "*.zip"
  5. 4. の手順を必要なだけ繰り返す。
    管理対象のファイルは .gitattributes ファイルに記録されるため、 .gitattributes をステージングしておくとよい。
    git add .gitattributes
  6. LFS管理下に置くファイルをステージングし、コミット、プッシュを行う。

注意が必要な点

既存のローカルリポジトリが大サイズのファイルを含んでいる場合、それらを後からLFSの管轄とすることはできない。
このため、それらを一旦リポジトリから削除し、前節の手順でLFSの管理対象に含めたうえで改めてGit管理下に置く必要がある。
場合によってはリポジトリを作り直さなければならない。

また、GitHubにおけるLFSは有料サービスであり、無料で利用できる範囲は となっている。無料プランを使用する場合は注意が必要。詳細は出典元を参照のこと。